Generating device, generating method, program and recording medium

ABSTRACT

A generation apparatus and the like for generating a test vector set capable of reducing differences in a logic value generated before and after a scan capture for outputs from scan cells included in a full-scan sequential circuit are provided. A generation apparatus  200  generating an initial test vector set  216  for a logic circuit includes a target vector identification unit  204  identifying a test vector satisfying a predetermined criterion and to be selected for the number of bits (the number of bit transitions) whose logic values differ before and after scan capture with respect to outputs from scan cells included in the sequential circuit, from among test vectors in the initial test vector set  216 , and a test vector set conversion unit  206  converting the test vector identified by the test vector identification unit  204  and to be selected so as to reduce the number of bit transitions with respect to outputs from the scan cells included in the sequential circuit.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation-In-Part of PCT Internationalapplication Serial No. PCT/JP2007/056149 filed Mar. 26, 2007, which isbased upon and claims the benefit of priority from prior Japanese PatentApplication No. 2006-088695, filed Mar. 28, 2006, the entire contents ofboth applications are incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to a generation apparatus, a generationmethod, a program capable of causing a computer to execute a generationmethod, and a recording medium recording this program. Morespecifically, the present invention relates to a generation apparatusand the like for generating a test vector set for a logic circuit.

BACKGROUND ART

As shown in FIG. 14, a semiconductor logic circuit is shipped aftergoing through three phases: design, manufacturing, and test. In the testphase, test vectors in each of which a logic value 0 or 1 is assigned toeach logic bit are applied to a manufactured semiconductor logiccircuit, a test response from the semiconductor logic circuit isobserved, the test response is compared with an expected test response,and a determination as to whether the manufactured semiconductor logiccircuit is a non-defective product or a defective product. Anon-defective product rate is called “yield” and the yield has a greatimpact on quality, reliability, and manufacturing cost of semiconductorlogic circuits.

Generally, a semiconductor logic circuit is a sequential circuit in mostcases. The sequential circuit is configured to include a combinationalcircuit portion constituted by logic elements such as an AND gate, aNAND gate, an OR gate and a NOR gate, and flip-flops each storing acircuit internal state. In this case, the combinational circuit portionincludes primary input lines (PIs), pseudo primary input lines (PPIs),primary output lines (POs), and pseudo primary output lines (PPOs) thatare flip-flop input lines. Inputs to the combinational circuit portioninclude those directly applied from the primary input lines and thoseapplied via the pseudo primary input lines. Further, outputs from thecombinational circuit portion include those directly appearing on theprimary output lines and those appearing on the pseudo primary outputlines.

To test the combinational circuit portion of the sequential circuit, itis necessary to apply required test vectors from the primary input linesand the pseudo primary input lines of the combinational circuit portionto the combinational circuit portion, and to observe a test responsefrom the primary output lines and the pseudo primary output lines of thecombinational circuit portion. One test vector is configured to includebits corresponding to primary input lines and pseudo primary inputlines, respectively. One test response is configured to include bitscorresponding to primary output lines and pseudo primary output lines,respectively.

However, output lines (pseudo primary input lines) and input lines(pseudo primary output lines) of the flip-flops of the sequentialcircuit are usually inaccessible from outside. Due to this, to test thecombinational circuit portion has problems of controllability over thepseudo primary input lines and observability of the pseudo primaryoutput lines.

Scan design is known as a main method of solving the problems of thecontrollability and the observability confronted by testing of thesequential circuit. The full-scan design means replacing flip-flops byscan flip-flops and generating one or a plurality of scan chains usingthe scan flip-flops. Operations performed by the scan flip-flops arecontrolled by a scan enable (SE) signal line. For example, if SE=0, eachof the scan flip-flops operates similarly to the conventionalflip-flops. If a clock pulse is applied, an output value from each ofthe scan flip-flops is updated to a value from the combinational circuitportion. Further, if SE=1, one scan flip-flop and another scan flip-flopin the same scan chain form one shift register. If a clock pulse isapplied, a new value is loaded to the scan flip-flop through shift-infrom the outside and, at the same time, a value currently present in thescan flip-flop is loaded to the outside through shift-out. Normally, thescan flip-flops belonging to the same scan chain share the same scanenable (SE) signal line. The scan flip-flops belonging to different scanchains either share the same scan enable (SE) signal line or usedifferent scan enable (SE) signal lines.

A test is conducted on the combinational circuit portion of a full-scansequential circuit by repeating scan shift and scan capture. The scanshift is performed in a shift mode in which a scan enable (SE) signal isset to a logic value 1. In the shift mode, one or a plurality of clockpulses is applied and one or a plurality of new values is loaded intothe scan flip-flops in each scan chain through shift-in from theoutside. At the same time, one or a plurality of values currentlypresent in the scan flip-flops in the scan chain is loaded to theoutside through shift-out. The scan capture is performed in a capturemode in which the scan enable (SE) signal is set to a logic value 0. Inthe capture mode, one clock pulse is applied simultaneously to all thescan flip-flops in one scan chain, and values of the pseudo primaryoutput lines of the combinational circuit portion are loaded into allthe scan flip-flops.

The scan shift is used to apply test vectors to the combinationalcircuit portion via the pseudo primary input lines and to observe a testresponse from the combinational circuit portion via the pseudo primaryoutput lines. The scan capture is used to load the test response fromthe combinational test portion into the scan flip-flops. By repeatingthe scan shift and the scan capture for all the test vectors, thecombinational circuit portion can be tested. A test method of this typeis called “scan testing”.

In the scan testing, application of test vectors to the combinationalcircuit portion includes direct application of test vectors from theprimary inputs and application thereof by means of the scan shift. Sincean arbitrary logic value can be set to an arbitrary scan flip-flop bythe scan shift, the problem of the controllability over the pseudoprimary input lines is solved. Observation of the test response from thecombinational circuit portion includes observation made directly by theprimary outputs and observation made by means of the scan shift. Sincean output value from an arbitrary scan flip-flop can be observed by thescan shift, the problem of the observability over the pseudo primaryoutput lines is solved. In this way, according to the scan testing, itsuffices to obtain test vectors and an expected test response using anautomatic test pattern generation (ATPG) program.

Despite usefulness of the scan testing, the problem remains that powerdissipation is quite high during a test as compared with ordinaryoperation. If a semiconductor logic circuit is constituted by a CMOScircuit, the power dissipation includes static power dissipation due toleakage current and dynamic power dissipation due to switching activityof logic gates and flip-flops. Moreover, the latter dynamic powerdissipation includes shift power dissipation during shift activity andcapture power dissipation during capture activity.

Generally, the number of clock pulses applied during the scan shift islarge for one test vector. For example, to set new values to all thescan flip-flops in a certain scan chain, it is necessary to apply clockpulses up to those as many as the scan flip-flops. Due to this, theshift power dissipation increases, often resulting in excessive heat.The excessive heat may possibly damage the semiconductor logic circuit.Studies have been actively conducted for methods of reducing the shiftpower dissipation.

Meanwhile, the number of clock pulses necessary during the scan capturefor one test vector is usually one per scan chain. Due to this, theproblem of the heat due to the scan capture power dissipation does notoccur. However, if the test response from the combinational circuitportion appearing on one pseudo primary output line is loaded into thescan flip-flops and the test response value differs from a valuecurrently present in the scan flip-flop, an output value from thecorresponding scan flip-flop changes. If the number of scan flip-flopshaving changed output values is large, power supply voltage temporarilydrops due to switching activities of logic gates and the scanflip-flops. This phenomenon is also called “IR-(I: current and R:resistance) drop phenomenon”. The IR-drop phenomenon causes the circuitto malfunction, and a faulted test response value is often loaded intothe scan flip-flops. A faulted test result that the semiconductor logiccircuit that can operate normally at ordinary time is determined as adefective product in a test is thereby obtained. This results in yieldloss. Particularly, if semiconductor logic circuits are increasinglymade very large in scale, ultra-fine, and lower in power supply voltage,the yield loss caused by the faulted test result becomes conspicuous. Itis, therefore, necessary to reduce capture power dissipation.

If a single clock signal is used during a test, scan capture powerdissipation can be reduced using a clock gating scheme. However, theclock gating scheme greatly influences physical design of thesemiconductor logic circuit. If multiple clock signals are used during atest, the scan capture power dissipation can be reduced using a one-hotscheme or a multiple-clock scheme. However, since the former schemegreatly increases test data volume and the latter scheme requiresconsiderably high memory dissipation to generate test vectors, the bothmethods cast heavy burden on the ATPG. Therefore, to reduce the scancapture power dissipation, a scheme with less influence on the physicaldesign, smaller increase in the test data volume, and slighter burden onthe ATPG is desirable.

On the other hand, a test cube with don't-care bits logic values ofwhich can be set to either 1 or 0 to achieve a predetermined object suchas fault detection frequently appears in the process of generating testvectors according to the ATPG program. By contrast, a test input withoutdon't-care bits including only a logic bit (bit having a logic value 0or 1) is referred to as the “test vector” as already described.Furthermore, if a set of test vectors without don't-care bits is given,a part of bits of a part of the test vectors can be replaced bydon't-care bits without changing the fault coverage of the test vectorset. Namely, a test cube can be also obtained by a don't-care bitsidentification program. A cause for the presence of the test cube is asfollows. To detect one or a plurality of target faults in thecombinational circuit portion of the full-scan sequential circuit, itsuffices to set necessary logic values to a part of bits on the primaryinput lines and the pseudo primary input lines. Since there is noinfluence on the detection of the target fault or faults whether 0 or 1is set to each of the remaining bits, those remaining bits are regardedas don't-care bits for the target fault or faults.

Non-Patent Documents 1 to 3 relate to techniques for replacing a part ofbits of a part of a set of test vectors without don't-care bits bydon't-care bits without changing the fault coverage of the test vectorset.

Non-Patent Document 1 uses a scheme called “Bit-Striping” for checkingwhether bits can operate as don't-care bits one bit by one bit so as toidentify don't-care bits of each test vector. This scheme completelyignores the correlation among the test vectors. This scheme also has aproblem that processing time increases in proportion to the number ofbits.

According to Non-Patent Document 2, don't-care bits are identified basedon a scheme called “XID”. Differently from the technique of Non-PatentDocument 1, not each test vector but all the test vectors in a giventest vector set are simultaneously processed by the XID scheme.Specifically, a fault that can be detected only in each test vector(referred to as “essential fault”) is obtained. Next, a logic valuesetting necessary to detect all essential faults is made by applyingimplication operation and logic justification of the ATPG. As a result,the other logic bits are replaced by don't-care bits. With this scheme,a simulation is not carried out on all input bits. Due to this, thescheme of Non-Patent Document 2 is more efficient and shorter in testapplication time than that proposed by Non-Patent Document 1.Nonetheless, no restrictive conditions are set for this don't-care-bitscheme. Namely, with this scheme, every logic bit may possibly bereplaced by a don't-care bit.

According to Non-Patent Document 3, similarly to the above-statedNon-Patent Document 2, not each test vector but all the test vectors ina given test vector set are simultaneously processed. The difference ofthe technique of Non-Patent Document 3 from that of Non-Patent Document2 is that it is not allowed to replace any of the logic bits bydon't-care bits and that don't-care bits are identified only from a partof logic bits (referred to as “candidate bits”). Don't-care bits are notidentified from logic bits other than the candidate bits (referred to as“fixed bits”). According to Non-Patent Document 3, don't-care bits areidentified under restrictive conditions including candidate bits andfixed bits. The scheme of Non-Patent Document 3 is short in testapplication time similarly to Non-Patent Document 2. In addition, withthe scheme of Non-Patent Document 3, don't-care bits can be identifiedefficiently for achieving a predetermined object. Obviously, since suchobject achievement efficiency depends on positions of don't-care bits,it is important to set the restrictive conditions including candidatebits and fixed bits according to the object.

A test cube with don't-care bits is only an intermediate appearing inthe process of generating test vectors without don't-care bits. Due tothis, it is necessary to assign a logic value 0 or 1 into eachdon't-care bit in the test cube. At the time of assignment, it is normalto decide a logic value (0 or 1) necessary to achieve a certain objectfor each don't-care bit. Non-Patent Document 4 relates to a techniquefor deciding a logic value for each don't-care bit in a test cube with aview of reducing scan capture power dissipation.

According to Non-Patent Document 4, three-valued (logic values 0, 1, andX representing don't-care) simulation is done to a test cube withdon't-care bits obtained by various schemes in a combinational circuitportion of a full-scan sequential circuit, and test responses to thetest cube are first obtained. Next, bit-pairs each including a pseudoinput line bit and a pseudo output line bit are classified into Type-Abit-pairs each with only the pseudo input line bit being a don't-carebit, Type-B bit-pairs each with the pseudo output line bit being adon't-care bit, and Type-C bit-pairs with both the pseudo input line bitand the pseudo output line bit being don't-care bits. These bit-pairsare processed in order one pair by one pair. If a Type-A bit-pair is tobe processed, a logic value of the corresponding pseudo output line bitis assigned to the pseudo input line bit that is the don't-care bit. Ifa Type-B bit-pair is to be processed, justification is performed so thata logic value of the pseudo input line bit appears on the pseudo outputline bit that is the don't-care bit, thereby deciding a logic value ofeach of the don't-care bits in the test cube. If a Type-C bit-pair is tobe processed, a logic value is assigned to the pseudo input line andjustification is performed on the pseudo output line so that the samelogic value (0 or 1) appears on each of the don't-care bits that areboth the pseudo input line bit and the pseudo output line bit,respectively, thereby deciding a logic value of each of the don't-carebits in the test cube. Obviously, the assignment technique of Non-PatentDocument 4 is characterized in that consideration is given only to onebit-pair including one pseudo input line bit and one pseudo output linebit when deciding the logic value of each of the don't-care bits in thetest cube. The logic values thus decided are not necessarily overalloptimum value.

-   [Non-Patent Document 1] R. Sankaralingam and N. A. Touba,    “Controlling Peak Power During Scan Testing,” Proceedings of IEEE    VLSI Test Symposium, pp. 153-159, 2002.-   [Non-Patent Document 2] K. Miyase and S. Kajihara, “XID: Don't Care    Identification of Test Patterns for Combinational Circuits,” IEEE    Transactions on Computer-Aided Design, Vol. 23, pp. 321-326, 2004.-   [Non-Patent Document 3] K. Miyase, S. Kajihara, I. Pomeranz, and S.    Reddy, “Don't Care Identification on Specific Bits of Test    Patterns,” Proceedings of IEEE/ACM International Conference on    Computer Design, pp. 194-199, 2002.-   [Non-Patent Document 4] X. Wen, H. Yamashita, S. Kajihara, L.-T.    Wang, K. Saluja, and K. Kinoshita, “On Low-Capture-Power Test    Generation for Scan Testing,” Proceedings of IEEE VLSI Test    Symposium, pp. 265-270, 2005.

DISCLOSURE OF THE INVENTION Problems to be Solved by the Invention

As stated, in full-scan sequential circuit testing, in the capture mode,if a test response from the combinational circuit portion appearing onthe pseudo primary output lines is loaded into the scan flip-flops andthe test response value differs from values currently present in thescan flip-flop, output values from the flip-flops change. If the numberof scan flip-flops having changed outputs is large, due to the switchingactivity of the logic gates, the IR-drop phenomenon occurs that thepower supply voltage temporarily drops. The circuit thereby malfunctionsand a faulted test response value is often loaded into the scanflip-flops. A faulted test result that the semiconductor logic circuitthat can operate normally at ordinary time is determined as a defectiveproduct in a test is thereby obtained. This results in yield loss.Particularly if semiconductor logic circuits are increasingly made verylarge in scale, ultra-fine, and lower in power supply voltage, the yieldloss caused by the faulted test result becomes conspicuous. It is,therefore, necessary to reduce capture power dissipation.

To prevent the above-stated problems, it is important to use testvectors with low capture power dissipation for which vectors the numberof differences between logic values loaded from a combinational circuitportion 802 into scan flip-flops 804 and logic values which the scanflip-flops 804 currently contain in FIG. 15 is as small as possible in atest. To generate such test vectors, it is necessary to generate a testcube with don't-care bits by some scheme and to further complete finaltest vectors by deciding optimum logic values and assignment the logicvalues into the respective don't-care bits included in the test cube.

A test cube frequently appears in the process of generating test vectorsaccording to the ATPG program. If a set of test vectors withoutdon't-care bits is given, a part of bits of a part of the test vectorscan be replaced by don't-care bits without changing the fault coverageof the test vector set. Particularly, to generate a test cube byidentifying don't-care bits from the given test vector set isadvantageous in application because of less influence on a testgeneration flow.

However, the conventional techniques for generating a test cube havevarious problems. With the technique of Non-Patent Document 1, testapplication time is long and a generated test cube cannot necessarilyreduce capture power dissipation efficiently. With the technique ofNon-Patent Document 2, test application time is relatively short andmore don't-care bits can be identified since the entire test set isprocessed. However, the generated test cube cannot necessarily reducecapture power dissipation effectively. With the technique of Non-PatentDocument 3, a test cube capable of effectively reducing capture powerdissipation can be generated by identifying don't-care bits only from apart of logic bits of the test set. However, no mention is given to howto define a don't-care bit identification range restricted by candidatebits and fixed bits.

There is also known a technique for assignment a logic value 0 or 1 intoeach don't-care bit in a test cube so as to effectively reduce capturepower dissipation. In particular, the technique of Non-Patent Document 4is more effective than the other techniques since the difference inlogic value is reduced between the pseudo input line bits and the pseudooutput line bits corresponding to each other in view of not only thepseudo input line bits but also the pseudo output line bits. However,with the technique of Non-Patent Document 4, only one bit-pair includingone pseudo input line bit and one pseudo output line bit is consideredfor one time when deciding a logic value (0 or 1) to be embedded intoeach don't-care bit. Due to this, the logic values thus decided are notnecessarily overall optimum values.

While the problem related to reduction in the capture power dissipationhas been described so far, similar problems accompanied by restrictionsoccur to the reduction in test data volume or the fault detection oftest data.

The present invention has been made to solve the above-stated problems.It is, therefore, an object of the present invention to provide ageneration apparatus generating a test vector set capable of reducingdifferences in logic value generated before and after scan capture withrespect to, for example, output of scan cells included in a full-scansequential circuit, a generation method, a program enabling a computerto execute the generation method, and a recording medium recording thisprogram.

Means for Solving the Problems

The invention according to claim 1 is a generation apparatus forgenerating a new test vector set by converting an initial test vectorset for a logic circuit, and the logic circuit is a full scan designedsequential circuit, the generation apparatus including: identificationmeans for identifying a target test vector exceeding a predeterminedcriterion for number of bits whose logic values differ before and afterscan capture with respect to outputs from scan cells included in thesequential circuit, from among test vectors in the initial test vectorset; and generation means for generating a new test vector reducing thenumber of bits whose logic values differ before and after scan capturewith respect to outputs from the scan cells included in the sequentialcircuit, and replacing the target test vector identified by theidentification means. Specific examples of generation of the new testvector reducing the number of bits whose logic values differ before andafter scan capture include generation of the new test vector byassigning logic values to unspecified values (X-bits) present in thetest cube so that input and output values of the flip-flops before andafter the scan capture are as identical as possible.

The invention according to claim 2 is the generation apparatus accordingto claim 1, wherein the generation means includes selection means forselecting target faults for the target test vector identified by theidentification means, and the generation means generates a new testvector capable of detecting all the target faults selected by theselection means, reducing the number of bits whose logic values differbefore and after scan capture with respect to outputs from the scancells included in the sequential circuit, and replacing the target testvector.

The invention according to claim 3 is the generation apparatus accordingto claim 2, wherein the selection means classifies the respective faultsdetected only by the target test vector identified by the identificationmeans into vector essential faults detected only by one target testvector and set essential faults detected by a plurality of target testvectors, selects the vector essential faults as target faults for thetarget test vector detecting the vector essential faults, and selectsthe set essential faults as target faults for one of the plurality oftarget test vectors detecting the set essential faults.

The invention according to claim 4 is the generation apparatus accordingto any one of claims 1, 2, and 3, wherein the generation means defines acapture conflict representing that a value of a certain pseudo primaryinput of a combinational circuit corresponding to the sequential circuitand a value of a pseudo primary output corresponding to the pseudoprimary input differ in a test generation process for the combinationalcircuit, aborts the latest logic value assignment when not only a faultdetection cannot be achieved but also the capture conflict occurs andperforms a backtrack for assigning combinational logic values that arenot tried before, and generates the new test vector replacing the targettest vector identified by the identification means.

The invention according to claim 5 is a generation apparatus forgenerating a new test vector set by converting an initial test vectorset for a logic circuit, and the logic circuit is a full scan designedsequential circuit, the generation apparatus including: generation meansfor defining a capture conflict representing that a value of a certainpseudo primary input of a combinational circuit corresponding to thesequential circuit and a value of a pseudo primary output correspondingto the pseudo primary input differ in a test generation process for thecombinational circuit, aborting the latest logic value assignment whennot only a fault detection cannot be achieved but also the captureconflict occurs and performing a backtrack for assigning combinationallogic values that are not tried before, and generating a new test vectorthat reduces number of bits whose logic values differ before and afterscan capture with respect to outputs from scan cells included in thesequential circuit and that replaces the target test vector in theinitial test vector set.

The invention according to claim 6 is the generation apparatus accordingto claim 4 and claim 5, wherein the generation means uses not only amain implication stack for performing a backtrack for the faultdetection in the test generation process and a backtrack for avoidanceof a state transition but also a restoration implication stack updatedfor an operation of restoring a state to a state before performing thebacktrack for the avoidance of the state transition with respect to alatest capture conflict when the fault detection becomes impossible.

The invention according to claim 7 is a generation method for generatinga new test vector set by converting an initial test vector set for alogic circuit, and the logic circuit is a full scan designed sequentialcircuit, the generation method including: an identification step ofcausing identification means to identify a target test vector exceedinga predetermined criterion for number of bits whose logic values differbefore and after scan capture with respect to outputs from scan cellsincluded in the sequential circuit, from among test vectors in theinitial test vector set; and a generation step of causing generationmeans to generate a new test vector reducing the number of bits whoselogic values differ before and after scan capture with respect tooutputs from the scan cells included in the sequential circuit, and toreplace the target test vector identified by the identification means.

The invention according to claim 8 is the generation method according toclaim 7, wherein the generation step includes a first step of selectingtarget faults for the identified target test vector; and a second stepof generating a new test vector capable of detecting all the selectedtarget faults for the target test vector identified by theidentification means, reducing the number of bits whose logic valuesdiffer before and after scan capture with respect to outputs from thescan cells included in the sequential circuit, and replacing the targettest vector.

The invention according to claim 9 is the generation method according toclaim 8, wherein in the first step, the respective faults detected onlyby the target test vector identified by the identification means areclassified into vector essential faults detected only by one target testvector and set essential faults detected by a plurality of target testvectors, the vector essential faults are selected as target faults forthe target test vector detecting the vector essential faults, and theset essential faults are selected as target faults for one of theplurality of target test vectors detecting the set essential faults.

The invention according to claim 10 is the generation method accordingto claim 9, wherein a result based on an operational expressionindicating an overlap degree for a reachable logic area between theplurality of faults to be selected is used for a judgment as a targetfault of which test vector the set essential faults are selected.

The invention according to claim 11 is the generation method accordingto any one of claims 7 to 10, wherein in the generation step, a captureconflict representing that a value of a certain pseudo primary input ofa combinational circuit corresponding to the sequential circuit and avalue of a pseudo primary output corresponding to the pseudo primaryinput differ in a test generation process is defined for thecombinational circuit, the latest logic value assignment is aborted whenthe capture conflict occurs and performs a backtrack for assigningcombinational logic values that are not tried before, and the new testvector replacing the target test vector identified by the identificationmeans is generated.

The invention according to claim 12 is a generation method forgenerating a new test vector set by converting an initial test vectorset for a logic circuit, and the logic circuit is a full scan designedsequential circuit, the generation method including: a generation stepof causing generation means to define a capture conflict representingthat a value of a certain pseudo primary input of a combinationalcircuit corresponding to the sequential circuit and a value of a pseudoprimary output corresponding to the pseudo primary input differ in atest generation process for the combinational circuit, aborting thelatest logic value assignment when not only a fault detection cannot beachieved but also the capture conflict occurs and performing a backtrackfor assigning combinational logic values that are not tried before, andgenerating a new test vector that reduces number of bits whose logicvalues differ before and after scan capture with respect to outputs fromscan cells included in the sequential circuit and that replaces thetarget test vector in the initial test vector set.

The invention according to claim 13 is the generation method accordingto claim 11 or 12, wherein in the generation step, not only a mainimplication stack for performing a backtrack for the fault detection inthe test generation process and a backtrack for avoidance of a statetransition but also a restoration implication stack list which lists aplurality of restoration implication stacks updated for an operation ofrestoring a state to a state before performing the backtrack for theavoidance of the state transition with respect to a latest captureconflict when the fault detection becomes impossible are used.

The invention according to claim 14 is the generation method accordingto claim 13, wherein in the generation step, if the capture conflictoccurs, a copy of a current main implication stack is added to a top ofthe restoration implication stack list as a restoration implicationstack corresponding to the capture.

The invention according to claim 15 is the generation method accordingto claim 13 or 14, wherein the generation step includes a restore stepof, when the main implication stack is empty and the restorationimplication stack list is not empty, deleting a restoration implicationstack present at a top of the restoration implication stack list fromthe restoration implication stack list and setting the restorationimplication stack as a new main implication stack, and resuming testvector generation while ignoring a capture conflict corresponding to therestoration implication stack in subsequent test generation processes.

The invention according to claim 16 is the generation method accordingto claim 15, wherein the restore step is repeated until the target faultis detected so that the fault coverage obtained in the initial testvector set does not fall.

The invention according to claim 17 is the generation method accordingto any one of claims 7 to 16, wherein when an unspecified value isincluded in the new test vector, a logic value is assigned to theunspecified value so as to reduce the number of bits whose logic valuesdiffer before and after scan capture.

The invention according to claim 18 is a program capable of causing acomputer to execute the generation method according to any one of claims7 to 17.

The invention according to claim 19 is a recording medium recording theprogram according to claim 18 so as to be able to cause a computer toexecute the program according to claim 18.

EFFECTS OF THE INVENTION

According to the present invention, it is possible to reduce differencesin logic value generated before and after scan capture more effectivelywith respect to, for example, output of scan cells included in afull-scan sequential circuit. Scan capture power dissipation can bethereby suppressed, thereby making it possible to avoid a faulted testresult. Therefore, reduction in a non-defective product rate at whichsemiconductor logic circuits operating normally in a normal situationare determined as defective products and aborted can be solved.

Furthermore, a generation apparatus and a generation method according tothe present invention do not change a logic circuit test design flow anddo not increase a circuit area by addition of hardware. Due to this, itcan be said that the generation apparatus and the generation methodaccording to the present invention are quite effective to avoid afaulted test result in capture mode.

Moreover, the generation apparatus and the generation method accordingto the present invention do not depend on the type of clocks. Due tothis, if a single clock signal is used during a test, test data volumedoes not increase remarkably as in a case of adopting a clock gatingscheme, but can be effectively reduced.

Further, since the generation apparatus and the generation methodaccording to the present invention do not reduce the fault coverage ofthe logic circuit, test data fault detection capability can beeffectively improved.

BEST MODE FOR CARRYING OUT THE INVENTION

Hereinafter, embodiments of the present invention will be described.

Referring to FIG. 1, an ordinary full-scan circuit that is a backgroundtechnique of the present invention will be described.

FIG. 1( a) is a schematic diagram showing a configuration of an ordinaryfull-scan circuit. This full-scan circuit is configured to include acombinational circuit portion 100 and scan flip-flops 102 of a full-scansequential circuit. The combinational circuit portion 100 includesprimary input lines (PIs), pseudo primary input lines (PPIs) that areoutput lines of the scan flip-flops, primary output lines (POs), andpseudo primary output lines (PPOs) that are input lines of the scanflip-flops. Test vectors v input to the combinational circuit portion100 includes vectors <v: PI> directly applied from the primary inputlines and vectors <v: PPI> applied via the pseudo primary input lines.The vectors <v: PPI> are set to the scan flip-flops 102 by scan shift.Outputs from the combinational circuit portion 100 include a testresponse f(v) to the test vectors v, and the test response f (v) isconstituted by parts <f (v): PO> directly appearing on the primaryoutput lines and parts <f (v): PPO> appearing on the pseudo primaryoutput lines. The parts <f(v): PPO> are loaded into the scan flip-flops102 by scan capture.

FIG. 1( b) shows an example of a case in which difference in logic valueoccurs between before and after the scan capture in the scan flip-flops102 shown in FIG. 1( a).

In FIG. 1( b), if one bit ‘a’ that is an element in one test vector <v:PPI> and the test response <f(v): PPO> corresponding to the test vector<v: PPI> have different logic values in one scan flip-flop 102, a logicvalue difference (hereinafter, referred to as “transition”) occurs in acapture mode. The number of transitions with respect to a certain testvector is closely correlated with power dissipation generated in theentire circuit including the combinational circuit portion 100 andresulting from the test vector. Due to this, capture power dissipationcan be reduced by reducing the number of transitions with respect to thetest vector in the capture mode.

FIG. 2 is a diagram showing concepts of a test cube and a test vectorset that form a basis for the present invention and describing anexample of test data manipulation. FIG. 3 is a diagram to brieflyexplain an example of don't-care identification that is presuppositionof the present invention.

Referring to FIG. 2, a don't-care bit which may be either the logicvalue 0 or 1 to achieve a predetermined object such as fault detectionis denoted by X. A set of test vectors including v1, v2, and v3 withdon't-care bits that can be set as don't-care bits is a test cube. Thetest cube is obtained by a dynamic scheme for causing don't-care bitsduring test generation according to ATPG and a static scheme foridentifying don't-care bits that can be set as don't-care bits after theATPG, which static scheme is referred to as “don't-care identification”.Logic values are specified in such a test cube (X-Filling), and the testcube is finally obtained as a test vector set including test vectorswith logic bits values of which are filled with either logic values 0'sor 1's. In the following, the test cube is decided so as to minimizesignal value transitions in the capture mode with respect to assignmentof logic values to the don't-care bits. It is to be noted that thestatic scheme is also applicable to a compacted test vector set, thusreducing a test data volume.

Referring to FIG. 3, to make a don't-care identification of identifyingbits that are included in the test cube and that can be set asdon't-care bits, a fault simulation, implication operation, andjustification operation are used and don't-care bits can be identifiedunder restrictions. Generally, the restrictions mean adjusting the faultcoverage for a specific fault model. In this case, 60% to 90% of bitscan be set as don't-care bits. By contrast, restrictions that the faultcoverage is not changed can be given in the following instance. It is tobe noted that an initial test vector set can be given as a compact testvector set by dynamic compaction or random assignment.

Next, a configuration of a generation apparatus according to anembodiment of the present invention will be described. FIG. 4 is aschematic block diagram of the generation apparatus according to theembodiment of the present invention.

A generation apparatus 200 is configured to include an initial testvector set generation unit 202, a target test vector identification unit204, and a test vector set conversion unit 206. The test vector setconversion unit 206 is configured to include a target fault selectionunit 208, a test cube generation unit 210, a logic value assignment unit212, and a final test vector set generation unit 214. Further, input andoutput data include an initial test vector set 216 (T) and a final testvector set 218 (T′). The initial test vector set 216 is a test vectorset generated by the initial test vector set generation unit 202 bymeans of the ATPG or the like in advance.

A processing performed by the generation apparatus 200 shown in FIG. 4will be briefly described. When the initial test vector 216 isgenerated, the target test vector identification unit 204 identifiesconversion target test vectors from within the initial test vector set216. The target fault selection unit 208 selects faults to be detectedby the test vectors identified by the target test vector identificationunit 204, and classifies the selected faults into vector essentialfaults and set essential faults. The test cube generation unit 210generates a test cube so that undetected faults are not present in theselected faults. In the generated test cube, the logic value assignmentunit 212 assigns logic values to don't-care bits and the final testvector set generation unit 214 generates a final test vector set.

Faults detected by non-target test vectors other than the conversiontarget test vectors are also detected. Due to this, test vectors can begenerated without reducing the detection rate of the initial test vectorset.

Referring to FIG. 5, a processing performed by the generation apparatusaccording to the embodiment of the present invention will be described.

FIG. 5 is a processing flow chart for the generation apparatus by a testvector generation scheme according to the embodiment of the presentinvention.

It is to be noted that LCP (Low Capture Power) means that powerdissipation is low in the scan capture mode. The processing performed bythe generation apparatus according to the embodiment of the presentinvention roughly includes two processings: stage 1 and stage 2 shown inFIG. 5. The stage 1 is a processing in step ST300. As means forgenerating the initial test vector set T, the conventional stuck-atfault detection ATPG is used. This stuck-at fault detection ATPGgenerates a test vector set at a minimum size satisfying the faultcoverage.

In the stage 2, all test vectors included in the initial test vector setT and causing HCP (High Capture Power) are identified. The “HCP” meansthat power dissipation is high in the scan capture mode. The testvectors with HCP are replaced by new vectors v″ so as to satisfyCT(v″)<c_limit.

In this case, CT(v″) denotes the number of bits whose logic valuesdiffer before and after scan capture using the test vector v″(hereinafter, referred to as “bit transitions”), and c_limit denotes anupper limit value that is the targeted number of bit transitions. If thenumber of bit transitions is not more than c_limit, the number of bittransitions is a numeric value with which it can be assumed that afaulted test result is not obtained. If the number of bit transitions isnot less than c_limit, the number of bit transitions is a numeric valuethat may cause a faulted test result. This c_limit is decided byestimation of a power dissipation amount in circuit design phase, anempirical rule or the like.

Referring back to FIG. 5, in step ST300, the initial test vector setgeneration unit 202 shown in FIG. 4 generates the initial test vectorset T using the conventional stuck-at fault detection ATPG. In stepST301, the target test vector identification unit 204 shown in FIG. 4obtains a test vector set Ttar including all the test vectors includedin the initial test vector set T satisfying CT(v)>c_limit as elements.In a step S302, the target fault selection unit 208 shown in FIG. 4detect all faults included in at least a fault list Ftar(v) with respectto each test vector v included in the test vector set Ttar and obtains afault list Ftar(v) for which the fault coverage does not fall.

In step ST303, it is determined whether an unprocessed test vector v ispresent in Ttar. If an unprocessed test vector v is not present in Ttar,the processing is finished. If an unprocessed test vector v is presentin Ttar, the processing goes to next step ST304. Instep ST304, it isdetermined whether an undetected fault f is included in the fault listFtar(v) for each test vector v included in each Ttar. If an undetectedfault f is included, the processing goes to step ST305.

In step ST305, the test cube generation unit 210 shown in FIG. 4 newlygenerates a test cube v′ with don't-care bits for detecting all faults fincluded in the fault list Ftar(v) in light of the reduction in scancapture power dissipation by an unspecified value assignment schemeintended for LCP. Back to step ST304, it is determined again whether anundetected fault f is included in the fault list Ftar(v) for each testvector v included in each Ttar. If an undetected fault f is notincluded, the processing goes to step ST306. In step ST306, the logicvalue assignment unit 212 shown in FIG. 4 assigns logic values to thedon't-care bits included in the test cube v′ so as to reduce scancapture power dissipation, thereby obtaining a test vector v″ withoutdon't-care bits. In step ST307, the final test vector set generationunit 214 shown in FIG. 4 replaces the test vectors v included in theinitial test vector set T by test vectors v″, thereby obtaining a finaltest vector set T′. Through the above-stated processing, the initialtest vector set T and the final test vector set T′ are equal in thefault coverage but the final test vector set T′ is lower than theinitial test vector set T in scan capture power dissipation.

In FIG. 5, the steps ST301, ST302, and ST305 relate to a scheme proposedby the present invention and the remaining steps relate to theconventional scheme.

Next, the processing in step ST301 shown in FIG. 5 will be described indetail.

In the step S301 shown in FIG. 5, all test vectors included in theinitial test vector set T and causing the HCP are identified and a setof those test vectors is stored as Ttar. The purpose is to avoidunnecessary processing on test vectors already achieving the LCP.

Although it is the best to perform this processing based on powerdissipation analysis, it may take long time for this analysis-basedapproach and layout information may not be able to be used at thisstage. Accordingly, the test vector v satisfying CT(v)>c_limit areidentified.

The processing in step ST302 shown in FIG. 5 will be described indetail.

In this processing, it is necessary to replace each test vector includedin the test vector set Ttar by test vectors achieving the LCP,respectively. It is also necessary to select the fault list Ftar(v)without the reduction in the fault coverage so as to generate new testvectors replacing the test vectors v included in the test vector setTtar.

In a case of selecting faults, it is necessary to satisfy the followingconditions.

(Condition 1) The following expression should include all faultsdetected only by the test vectors included in the test vector set Ttar.This assures that the fault coverage does not fall.

$\begin{matrix}{\sum\limits_{v \in {Ttar}}{{Ftar}(v)}} & \left\lbrack {{Formula}\mspace{20mu} 1} \right\rbrack\end{matrix}$

(Condition 2) Ftar(v) should include faults easy to detect in the testcube achieving the LCP.(Condition 3) Ftar(v) should be a set as small as possible.

FIG. 6 shows an example of a result of performing the processing in stepST302 shown in FIG. 5 so as to obtain Ftar(v) satisfying the threeconditions of Conditions 1 to 3.

In FIG. 6, it is defined that the initial test vector set T={v1, v2, v3,v4, v5} and that v1, v4, and v5 are test vectors causing the HCP.Namely, Ttar={v1, v4, v5}. In this case, it is assumed that 12 faultsare present and fault detection information obtained by fault simulationis shown in FIG. 6. In this case, it is preferable that the number offaults targeted at by the target test vectors is small so as to reducethe number of bit transitions of the target test vectors. Therefore,faults f11 and f12 underlined in FIG. 6 are detected by test vectors v2and v3 that are not included in the test vector set Ttar. Accordingly,the faults f11 and f12 are excluded from a fault set targeted at by thetarget test vectors. Namely, a fault set detected only by the testvectors included in the test vector set Ttar is TA={f1, f4 to f10}. Thisindicates that the fault coverage for the fault list Ftar(v) does notdecrease from that obtained from the initial test vector set as long asall the faults included in the TA can be detected.

All the faults included in the TA are classified into two types offaults. Faults of one type are faults detected only by only one testvector included in the test vector set Ttar (hereinafter, referred to as“vector essential fault”). The encircled faults in FIG. 6 are vectoressential faults. Faults of the other type are faults that are detectedby a plurality of test vectors in the test vector set Ttar and thatcannot be detected by a test vector set (T-Tar) obtained by excludingthe test vector set Ttar from the initial test vector set T(hereinafter, referred to as “set essential faults”). Faults surroundedby quadrangles are set essential faults.

All the vector essential faults for the test vectors V should beincluded in the fault list Ftar(v). For example, vector essential faultsf1 and f6 need to be included in the Ftar(v1). On the other hand, theset essential faults should be included in the fault list Ftar(v) or inthe other fault list for detecting the set essential faults withoutreducing the fault coverage. For example, f9 is a set essential faultdetected by test vectors v1 and v4 and needs to be included in eitherFtar(v1) or Ftar(v4).

Each set essential fault is included in such an Ftar(v) as to easilydetect faults when a test cube achieving the LCP is newly generated. Thefollowing novel concept is used to calculate easiness to detect faults.

It is assumed that two faults fa and fb are present in the full-scancircuit. Sets of pseudo primary inputs (PPIs) structurally reachablefrom the faults fa and fb are denoted by RI(a) and RI(b), respectively.Sets of pseudo primary outputs (PPOs) structurally reachable from thefaults fa and fb are denoted by RO(a) and RO(b), respectively. Overlapdegree of PPIs and PPOs reachable from the faults fa and fb are denotedby od(fa, fb) and defined as follows.

$\begin{matrix}{{{od}\left( {{fa},{fb}} \right)} = {{\sum\limits_{{i = a},b}\frac{{{{RO}(a)}\bigcap{{RO}(b)}}}{{RI}(i)}} + {\sum\limits_{{i = a},b}\frac{{{{RI}(a)}\bigcap{{RI}(b)}}}{{RI}(i)}}}} & \left\lbrack {{Formula}\mspace{20mu} 2} \right\rbrack\end{matrix}$

FIG. 7 is a diagram showing a concept of the overlap degree of PPIs andPPOs reachable from the faults fa and fb.

In FIG. 7, if a value of od(fa, fb) is larger, the overlap degree ofPPIs and PPOs reachable from the faults fa and fb is larger. FIG. 7 alsoindicates a probability that it is difficult to reduce the number of bittransitions during the scan capture when generating a test cube forsimultaneously detecting the faults fa and fb.

It is assumed that a set essential fault f that is not included in theFtar(v) at the present time can be detected by the test vectors v forwhich a fault list at the present time is Ftar(v)={fn1, fn2, . . . ,fnp}. First, od(f, fn1), od(f, fn2), . . . , and od(f, fnp) arecalculated and an average overlap degree of PPIs and PPOs reachable fromthe respective faults is calculated as represented by the followingequation.

$\begin{matrix}{{{aod}\left( {f,{{Ftar}(v)}} \right)} = {\sum\limits_{{i = 1},2,\; \ldots \mspace{11mu},p}{{{od}\left( {f,{fni}} \right)}/{{{Ftar}(v)}}}}} & \left\lbrack {{Formula}\mspace{20mu} 3} \right\rbrack\end{matrix}$

To decide which test vector is to be used to detect the set essentialfault f detected by test vectors vm1, vm2, . . . , and vms, aod(f,Ftar(vm1)), aod(f, Ftar(vm2)), . . . , and aod(f, Ftar(vms)) arecalculated, and the fault f is included in the fault list for the testvector having a minimum overlap degree of PPIs and PPOs reachable fromeach fault is obtained.

For example, in FIG. 6, if a fault list including the set essentialfault f9 detected by both v1 and v4 is decided, Ftar(v1) and Ftar(v4)are {f1, f6} and {f4, f7, f8}, respectively. Supposing aod(f9,Ftar(v1))<aod(f9, Ftar(v4)), the set essential fault f9 is included inthe Ftar(v1). FIG. 6 shows a final result.

In the embodiment of the present invention, the set essential faults areassigned according to overlap degrees of PPIs and PPOs reachable fromthe faults fa and fb. Alternatively, the set essential faults may beassigned according to the number of faults detected by each test vector.For example, the numbers of assignment target faults detected by testvectors are compared, and set essential faults are assigned to thesmaller number of assignment target faults so that the target numbers offaults are almost equal.

The processing in step ST305 shown in FIG. 5 will be described indetail.

After the target fault list Ftar(v) is obtained for one test vector vcausing the HCP, a test cube generation processing for sensing capturepower dissipation (hereinafter, referred to as “CA_test_cube_generation(f)”) in the step S305 shown in FIG. 5 is performed to generate a testcube achieving the LCP for detecting all the faults in the Ftar(v).

FIG. 8 is a block diagram showing a configuration of the test cubegeneration unit 210 shown in FIG. 4.

The test cube generation unit 210 is configured to include a backtrackdetermination processing unit 600, a backtrack processing unit 602, anda test cube generation processing unit 604. The backtrack determinationprocessing unit 600 is configured to include a D conflict detector 606and a C conflict detector 608. The test cube generation processing unit604 is configured to include an primary implication (main implication)stack processor 610, a restoration implication stack processor 612, arestoration implication stack list processor 614, an primary implication(main implication) stack 616 (Si), a restoration implication stack 618(S), and a restoration implication stack list 620 (L(S)). It is to benoted that an expression “main implication” in the claims corresponds to“primary implication” used hereinafter.

In FIG. 8, the backtrack determination processing unit 600 determineswhether to perform a backtrack processing based on a test cube v in aninitial state. If the backtrack determination processing unit 600determines not to perform a backtrack processing, the test cubegeneration unit 604 generates a test cube.

FIG. 9 is a flowchart showing procedures of the CA_test_cube_generation(f) processing.

Generally, the CA_test_cube_generation (f) is based on a PODEMalgorithm. According to the present invention, the processing in stepsST702, ST705, ST707, ST708, and ST709 is an improvement from the PODEMalgorithm. This improvement is based on two basic concepts of captureconflict (hereinafter, referred to as “C conflict”) and restorationimplication stack. The CA_test_cube_generation (f) is intended togenerate a test cube capable of detecting faults f and, at the sametime, to reduce the number of bit transitions with respect to bits inthe test cube as much as possible. The improvement will be described indetail below.

A conventionally known combinational circuit ATPG algorithm based on thePODEM algorithm makes backtracking (hereinafter, referred to as“backtrack”) when discovering a conflict of fault detection information(hereinafter, referred to as “D conflict”) during an X-path-checking.The backtrack will be described generally. In the automatic testgeneration, the backtrack is performed by searching logic values to beassigned to unspecified values (X-bits) in the test cube one by one. Ifit is discovered that a certain object such as the fault detectioncannot be achieved in the process of this automatic test generation, thebacktrack is performed. Specifically, the backtrack is an activity fordestroying logic value assignment determined previously and assigninglogic values in a combination that is not tried before. The D conflictmeans that a path with unspecified values for activating paths duringthe fault detection is not present at a gate of a D front signal line (Dfrontier) or on any PO or PPO.

In the CA_test_cube generation (f) according to the embodiment of thepresent invention, a new backtrack condition of a C conflict as well asthe D conflict is introduced. The C conflict means that a certain PPIand a PPO corresponding to the certain PPI have different values.Occurrence of a C conflict means that a transition occurs before andafter the scan capture. The C conflict will be described in detail withreference to FIG. 10.

FIG. 10 is a diagram showing a concept of the C conflict.

In FIG. 10, the number of flip-flops is n and the number of C conflictsis also n. A C conflict on the PPI and PPO signal lines corresponding toan i^(th) flip-flop is Ci. The number of D conflicts is one whicheverX-path check fails.

The C conflict is checked in the CA_test_cube_generation (f) in light ofthe influence of the scan capture power dissipation. A simple discoverymethod for evaluating the influence of the C conflict Ci is to countgates of the combinational circuit portion reachable from an output ofthe i^(th) flip-flop in the scan circuit.

Referring back to FIG. 9, it is first determined whether a detectiontarget fault can be detected in step ST700. If a detection target faultcan be detected, a test vector set is successfully generated and theprocessing ends. If a detection target fault cannot be detected, theprocessing goes to next step ST701. If a D conflict is detected in stepST701 or a C conflict is detected in the step S702, it is determinedwhether or not the primary implication stack is empty by theCA_test_cube_generation (f) in step ST704. If the primary implicationstack is empty and the C conflict occurs, a copy of the current primaryimplication stack is added to a top of the restoration implication stacklist and backtrack is performed in step ST706. However, the D conflictand the C conflict fundamentally differ in the following reasons.

If all search spaces are searched by the D conflict, test generationfails. However, if at least one C conflict occurs before all the searchspaces are searched, test generation possibly succeeds when the Cconflict is ignored. A test cube generated while ignoring the C conflictcan detect detection target faults but cannot reduce the number of bittransitions.

Although the C conflict check is useful to reduce the number of bittransitions, it is necessary to prevent a C conflict that hampersgeneration of a test cube for target fault detection. In the embodimentof the present invention, therefore, the following two types ofimplication stacks are prepared. One type is an primary implicationstack similar to that used on the conventional PODEM-based ATPGalgorithm, used to perform a backtrack for fault detection and abacktrack for avoidance of state transition, and used to manage thesearch spaces. The other type is a restoration implication stack that isa copy of the primary implication stack generated when a C conflict isdiscovered, and used for operation of restoring to a state before thebacktrack for avoidance of the state transition against the latestcapture conflict when the fault detection becomes impossible. Since aplurality of C conflicts possibly occurs, a plurality of restorationimplication stacks is possibly present. These stacks are placed in thelist called “restoration implication stack list”.

If a D conflict is detected in step ST701 or a C conflict is detected inthe step S702 shown in FIG. 9, it is determined whether or not theprimary implication stack is empty in step ST704. If the primaryimplication stack is empty, it is determined whether or not therestoration implication stack list is empty in step ST707. If therestoration implication stack is not empty, this means that at least oneC conflict occurs and that the C conflict causes a failure in a currenttest generation processing. In this case, a top of the restorationimplication stack list or a nearest stack S is deleted from therestoration implication stack list and is restored as an primaryimplication stack in step ST708. In next step ST709, a C conflictcoincident with the stack S is ignored. A processing in step ST710 isperformed to resume the test generation. Through such a processing, atest cube for detecting target faults and, at the same time, reducingthe number of bit transitions as much as possible is generated.

If a D conflict is not detected in step ST701 or a C conflict is notdetected in step ST702 shown in FIG. 9, a part of the test generationprocessing based on the PODEM of objective( ), backtrace( ), and imply() is performed in step ST703. The processing returns to step ST700 inwhich it is determined again whether or not a detection target fault isdetected. Likewise, if the backtrack is performed in step ST706 or thetest generation is resumed in step ST710, the processing returns to stepST700 in which it is determined again whether or not a detection targetfault is detected.

FIG. 11 shows an example of the process of generating a test cube by theCA_test_cube_generation (f). In FIG. 11, A, B, . . . , and G denotePPIs. It is assumed that backtrace( ) decides logic values of a testcube while generating the test cube in a search order of A to G. It isalso assumed that the primary implication stack is PS.

FIG. 11 shows that the PS is set to <A:0, B:1, C:0> (PS=<A:0, B:1, C:0>)and an instance in which a D conflict occurs. This instance is denotedby “D”. At this time, a logic value 1 is assigned to C by a backtrack.Next, the backtrace( ) assigns a logic value 0 to D. If PS=<A:0, B:1,C:1, D:0>, a C conflict “C1” occurs. In this case, a copy of the PSdenoted by the C conflict “C1” is placed in the restoration implicationstack list. Next, a logic value 1 is assigned to D by a backtrack.Likewise, if PS=<A:0, B:1, C:1, D:1, E:0>, a C conflict “C2” occurs. Acopy of the PS denoted by the C conflict “C2” is placed in therestoration implication stack list. Finally, the PS becomes empty due toa D conflict.

In FIG. 12, an uppermost stack C2 in the restoration implication stacklist is restored as an primary implication stack and the test generationis resumed while ignoring the C conflict C2. As a result of the testgeneration, the test cube becomes <A, B, C, D, E, F, G>=<0, 1, 1, 1, 0,1, X>. This test cube not only detects detection target faults but alsoavoids a transition coincident with the C conflict “C1”.

In the embodiment, if an unspecified value is included in a newlygenerated test vector, a logic value is assigned to the unspecifiedvalue so as to reduce the number of bits whose logic values differbefore and after scan capture.

Hereinafter, experimental results of the present invention are shown.

The novel scheme for LCP test generation as shown in FIG. 5 wasimplemented and experiments were conducted on ISCAS' 89 circuits. Theresults are shown in FIG. 13.

The novel LCP test generation scheme achieved 31.2% reduction in themaximum number of bit transitions in the capture mode on average. Thisis a greater value than 21.6° shown in the conventional X-filling (X.Wen, H. Yamashita, S. Kajihara, L.-T. Wang, K. Saluja, K. Kinoshita, “OnLow-Capture-Power Test Generation for Scan Testing,” Proc. VLSI TestSymp., 2005, pp. 265-270). With the scheme according to the presentinvention, the number of test vectors increases. This is because theorder of fault detection is ignored in present implementation and aplurality of test patterns may possibly be generated so as to detect thetarget fault Ftar(v) for the test vector v. However, this problem couldbe solved by using the order of fault detection when the initial testvectors are generated.

The present invention has been described so far while being applied tothe ATPG algorithm based on the PODEM algorithm. The present inventioncan be also applied to the other ATPG algorithms such as a D algorithm,a FAN algorithm, an extension D algorithm, a nine-valued method, and anRTP (Reverse Time Processing) method.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram showing a configuration of an ordinaryfull-scan circuit that is a background technique of the presentinvention.

FIG. 2 is a diagram showing concepts of a test cube and a test vectorset that form a basis for the present invention and describing anexample of test data manipulation.

FIG. 3 is a diagram for briefly describing an example of a don't-careidentification that forms a basis for the present invention.

FIG. 4 is a schematic block diagram of a generation apparatus accordingto an embodiment of the present invention.

FIG. 5 is a processing flow chart for the generation apparatus by an LCPtest vector generation scheme according to the embodiment of the presentinvention.

FIG. 6 shows an example of a result of performing a processing in StepST302 shown in FIG. 5.

FIG. 7 is a diagram showing a concept of an overlap degree of pseudoprimary input (output) line reachable from faults.

FIG. 8 is a block diagram showing a configuration of a test cubegeneration unit 210 shown in FIG. 4.

FIG. 9 is a flowchart showing procedures of a CA_test_cube_generation(f) processing.

FIG. 10 is a diagram showing a concept of a C conflict.

FIG. 11 is a first diagram showing an example of a process of generatinga test cube.

FIG. 12 is a second diagram showing an example of the process ofgenerating a test cube.

FIG. 13 is a table showing experimental results of the presentinvention.

FIG. 14 schematically shows steps before a semiconductor logic circuitis shipped to market.

FIG. 15 is a schematic diagram of a full-scan sequential circuit in anordinary logic circuit.

DESCRIPTION OF REFERENCE SYMBOLS

-   200 Generation apparatus-   204 Target test vector identification unit-   206 Test vector set conversion unit-   216 Initial test vector set

DRAWINGS FIG. 1

1 Combinational circuit portion

2 Scan F/Fs 3 Selection 4 Non-selection FIG. 2

1 Dynamic scheme (during ATPG)2 Static scheme (after ATPG)3 Test generation4 Don't care identification5 Test cube6 Leave x's in test generation7 Find x's after test generation

FIG. 3

1 Dynamic compaction or random assignment2 Compact test vector set3 Make don't care under “restrictions” to identify bits to which x's canbe assigned.4 Test cube set

FIG. 4

1 Generation apparatus2 Initial test vector set generation unit3 Target test vector identification unit4 Test vector set conversion unit5 Target fault selection unit6 Test cube generation unit7 Logic value assignment unit8 Final test vector set generation unit9 Initial test vector set: T10 Final test vector set: T′

FIG. 5 1 Start

2 Is unprocessed v present in Ttar?3 Is undetected fault f present in Ftar(v)?

4 End 5 Stage 1 6 Stage 2 FIG. 6

1 HCP vector?2 Fault classification3 Target fault list Ftar(vi)4 Vector essential fault5 Set essential fault

FIG. 7

1 Combinational circuit portion

FIG. 8

1 Test cube generation unit2 Backtrack determination processing unit3 D conflict detector4 C conflict detector5 Backtrack processing unit6 Test cube generation processing unit7 Primary implication stack processor8 Restoration implication stack processor9 Restoration implication stack list processor10 Restoration implication stack list L(S)11 Test cube v12 Primary implication stack Si13 Restoration implication stack S

FIG. 9 1 Start

2 Is detection target fault detected?3 Does D conflict occur?4 Does C conflict occur?5 Success in test generation6 Is primary implication stack empty?7 Add copy of current primary implication stack to top of restorationimplication stack list if C conflict occurs8 Is restoration implication stack empty?9 Delete top of restorationimplication stack S to make primary implication stack10 Ignore C conflict coincident with S11 Failure in test generation

FIG. 10

1 Combinational circuit portion2 C conflict

FIG. 11

1 Restoration implication stack pointer2 Primary implication stack becomes empty

FIG. 12

1 Restoration implication stack pointer

2 Restoration

3 Detection success

FIG. 14 1 Design 2 Manufacturing 3 Test

4 Possibility of fault occurrence5 Test vectors6 Semiconductor logic circuit7 Test response

8 Compare

9 Defective product

10 Discord 11 Accord

12 Non-defective product13 Expectation test response

FIG. 15

1 Test vectors v2 Full-scan circuit3 Combinational circuit portion (logic function F)4 F(v) test response

1. A generation apparatus for generating a new test vector set byconverting an initial test vector set for a logic circuit, and the logiccircuit is a full scan designed sequential circuit, the generationapparatus comprising: identification means for identifying a target testvector exceeding a predetermined criterion for number of bits whoselogic values differ before and after scan capture with respect tooutputs from scan cells included in the sequential circuit, from amongtest vectors in the initial test vector set; and generation means forgenerating a new test vector reducing the number of bits whose logicvalues differ before and after scan capture with respect to outputs fromthe scan cells included in the sequential circuit, and replacing thetarget test vector identified by the identification means.
 2. Thegeneration apparatus according to claim 1, wherein the generation meansincludes selection means for selecting target faults for the target testvector identified by the identification means, and the generation meansgenerates a new test vector capable of detecting all the target faultsselected by the selection means, reducing the number of bits whose logicvalues differ before and after scan capture with respect to outputs fromthe scan cells included in the sequential circuit, and replacing thetarget test vector.
 3. The generation apparatus according to claim 2,wherein the selection means classifies the respective faults detectedonly by the target test vector identified by the identification meansinto vector essential faults detected only by one target test vector andset essential faults detected by a plurality of target test vectors,selects the vector essential faults as target faults for the target testvector detecting the vector essential faults, and selects the setessential faults as target faults for one of the plurality of targettest vectors detecting the set essential faults.
 4. The generationapparatus according to claim 1, wherein the generation means defines acapture conflict representing that a value of a certain pseudo primaryinput of a combinational circuit corresponding to the sequential circuitand a value of a pseudo primary output corresponding to the pseudoprimary input differ in a test generation process for the combinationalcircuit, aborts the latest logic value assignment when not only a faultdetection cannot be achieved but also the capture conflict occurs andperforms a backtrack for assigning combinational logic values that arenot tried before, and generates the new test vector replacing the targettest vector identified by the identification means.
 5. A generationapparatus for generating a new test vector set by converting an initialtest vector set for a logic circuit, and the logic circuit is a fullscan designed sequential circuit, the generation apparatus comprising:generation means for defining a capture conflict representing that avalue of a certain pseudo primary input of a combinational circuitcorresponding to the sequential circuit and a value of a pseudo primaryoutput corresponding to the pseudo primary input differ in a testgeneration process for the combinational circuit, aborting the latestlogic value assignment when not only a fault detection cannot beachieved but also the capture conflict occurs and performing a backtrackfor assigning combinational logic values that are not tried before, andgenerating a new test vector that reduces number of bits whose logicvalues differ before and after scan capture with respect to outputs fromscan cells included in the sequential circuit and that replaces thetarget test vector in the initial test vector set.
 6. The generationapparatus according to claim 4, wherein the generation means uses notonly a main implication stack for performing a backtrack for the faultdetection in the test generation process and a backtrack for avoidanceof a state transition but also a restoration implication stack updatedfor an operation of restoring a state to a state before performing thebacktrack for the avoidance of the state transition with respect to alatest capture conflict=when the fault detection becomes impossible. 7.A generation method for generating a new test vector set by convertingan initial test vector set for a logic circuit, and the logic circuit isa full scan designed sequential circuit, the generation methodcomprising: an identification step of causing identification means toidentify a target test vector exceeding a predetermined criterion fornumber of bits whose logic values differ before and after scan capturewith respect to outputs from scan cells included in the sequentialcircuit, from among test vectors in the initial test vector set; and ageneration step of causing generation means to generate a new testvector reducing the number of bits whose logic values differ before andafter scan capture with respect to outputs from the scan cells includedin the sequential circuit, and to replace the target test vectoridentified by the identification means.
 8. The generation methodaccording to claim 7, wherein the generation step includes a first stepof selecting target faults for the identified target test vector; and asecond step of generating a new test vector capable of detecting all theselected target faults for the target test vector identified by theidentification means, reducing the number of bits whose logic valuesdiffer before and after scan capture with respect to outputs from thescan cells included in the sequential circuit, and replacing the targettest vector.
 9. The generation method according to claim 8, wherein inthe first step, the respective faults detected only by the target testvector identified by the identification means are classified into vectoressential faults detected only by one target test vector and setessential faults detected by a plurality of target test vectors, thevector essential faults are selected as target faults for the targettest vector detecting the vector essential faults, and the set essentialfaults are selected as target faults for one of the plurality of targettest vectors detecting the set essential faults.
 10. The generationmethod according to claim 9, wherein a result based on an operationalexpression indicating an overlap degree for a reachable logic areabetween the plurality of faults to be selected is used for a judgment asa target fault of which test vector the set essential faults areselected.
 11. The generation method according to claim 7, wherein in thegeneration step, a capture conflict representing that a value of acertain pseudo primary=input of a combinational circuit corresponding tothe sequential circuit and a value of a pseudo primary outputcorresponding to the pseudo primary input differ in a test generationprocess is defined for the combinational circuit, the latest logic valueassignment is aborted when the capture conflict occurs and performs abacktrack for assigning combinational logic values that are not triedbefore, and the new test vector replacing the target test vectoridentified by the identification means is generated.
 12. A generationmethod for generating a new test vector set by converting an initialtest vector set for a logic circuit, and the logic circuit is a fullscan designed sequential circuit, the generation method comprising: ageneration step of causing generation means to define a capture conflictrepresenting that a value of a certain pseudo primary input of acombinational circuit corresponding to the sequential circuit and avalue of a pseudo primary output corresponding to the pseudo primaryinput differ in a test generation process for the combinational circuit,aborting the latest logic value assignment when the capture conflictoccurs and performing a backtrack for assigning combinational logicvalues that are not tried before, and generating a new test vector thatreduces number of bits whose logic values differ before and after scancapture with respect to outputs from scan cells included in thesequential circuit and that replaces the target test vector in theinitial test vector set.
 13. The generation method according to claim11, wherein in the generation step, not only a main implication stackfor performing a backtrack for the fault detection in the testgeneration process and a backtrack for avoidance of a state transitionbut also a restoration implication stack list which lists a plurality ofrestoration implication stacks updated for an operation of restoring astate to a state before performing the backtrack for the avoidance ofthe state transition with respect to a latest capture conflict when thefault detection becomes impossible are used.
 14. The generation methodaccording to claim 13, wherein in the generation step, when the captureconflict occurs, a copy of a current main implication stack is added toa top of the restoration implication stack list as a restorationimplication stack corresponding to the capture.
 15. The generationmethod according to claim 13, wherein the generation step includes arestoration step of, when the main implication stack is empty and therestoration implication stack list is not empty, deleting a restorationimplication stack present at a top of the restoration implication stacklist from the restoration implication stack list and setting therestoration implication stack as a new main implication stack, andresuming test vector generation while ignoring a capture conflictcorresponding to the restoration implication stack in subsequent testgeneration processes.
 16. The generation method according to claim 15,wherein the restore step is repeated until the target fault is detectedso that the fault coverage obtained in the initial test vector set doesnot fall.
 17. The generation method according to claim 7, wherein whenan unspecified value is included in the new test vector, a logic valueis assigned to the unspecified value so as to reduce the number of bitswhose logic values differ before and after scan capture.
 18. A programcapable of causing a computer to execute the generation method accordingto claim
 7. 19. A recording medium recording the program according toclaim 18 so as to be able to cause a computer to execute the programaccording to claim 18.